/******************************************************************************
** 公司名称：天津柯迪斯科技有限公司
** 版权信息：
** 文件名称： App_Protocol_SIF.h
** 模块名称： SIF协议(一线通协议)处理模块
** 版 本 号： V1.0
** 作    者： 蒲磊
**
** 修改记录： 版本     修改人      时间         修改内容

******************************************************************************/
#ifndef __APP_PROTOCOL_SIF_H_
#define __APP_PROTOCOL_SIF_H_

/******************************************************************************
* 头文件
******************************************************************************/
#include "bsp.h"
/******************************************************************************
* 宏定义 ('#define')
******************************************************************************/
#define LOOP_CYCLE      25      /*协议轮询的周期，单位ms*/
/******************************************************************************
* 类型定义 ('typedef')
******************************************************************************/
typedef struct
{
    int8_t 	    Current;
    uint16_t 	Speed_Cnt;
    uint8_t		ErrCode;
    uint8_t     CommunicationErr;
    uint8_t		Soc;
    uint8_t     Motor_State;
    uint8_t     Mode;
    uint16_t    Wheel;              /*轮径*/
} stBIKE_DATA;


/******************************************************************************
* 全局变量声明
******************************************************************************/

/******************************************************************************
* 函数声明
******************************************************************************/
void SIF_GPIO_Init(void);               //GPIO初始化函数
void SIF_Timer_Init(void);              //定时器初始化函数
void SIF_Timer_ISR_Callback(void);      //定时器中断回调函数
void vPROTOCOL_Loop(void);

void vPROTOCOL_Set_Wheel(uint16_t Wheel);
void vPROTOCOL_Set_Value_When_PowerOn(void);
void vPROTOCOL_ResetCommunicationOverTime(void);
void vPROTOCOL_Set_Value_When_ExitSetting(void);


int8_t usPROTOCOL_Get_Current(void);
int8_t cPROTOCOL_Get_Soc(void);
uint16_t usPROTOCOL_Get_Speed(void);
uint8_t ucPROTOCOL_Get_Errcode(void);
uint8_t ucPROTOCOL_Get_Mode(void);

void vPROTOCOL_ResetCommunicationOverTime(void);




#endif
